Skip to main content

Trucks

Overview (C4 Component)

Black-box description of components

ComponentResponsibilityProvided Interface(s)Consumed Interface(s)
TruckControllerREST endpoints for register/update/delete/search trucks./api/v1/trucks/** (OpenAPI)
TruckServiceCore use-cases, soft-delete, provider validation, antennamerge, tech-spec aware search.Spring service APITruckRepository, ProviderRepository, TruckSpecificationBuilder, TruckMapper, AntennaService
TruckRepositoryPersistence of Truck aggregate (soft-delete enabled).Spring-Data JPAMySQL via JDBC
AntennaService / AntennaRepositoryManage child Antenna value-objects inside a truck.Java service / JPA repo
TruckSpecificationBuilderComposes JPA Specification<Truck> from TruckFilterRequest.Java classTruckJsonSpecifications
TruckMapper / AntennaMapperMapStruct mappers for DTO conversion.Java interface
TruckJsonSpecificationsStatic helper functions building JSON_EXTRACT predicates for tech-spec column.Java class
ProviderRepository (external)Provides provider look-up when registering trucks.Spring-Data JPAMySQL

Important internal interfaces

NameSignature / ProtocolNotes
registerTruckForProviderPOST /api/v1/providers/{opsCode}/trucks – body TruckCreateRequestValidates provider exists, creates truck & antennas, returns 201 Created.
updateTruckPUT /api/v1/trucks/{id} – body TruckUpdateRequestUpdates scalar fields & merges/upserts antenna list.
deleteTruckDELETE /api/v1/trucks/{id}Soft-delete via @SQLDelete.
searchTrucksGET /api/v1/trucks?q=<Base64Json>Accepts encoded JSON filter; builder supports >30 predicates incl. tech-specs.
findByAntennaNumberTruckService.findByAntennaNumber(String)Used by Quote module to associate quotes with existing trucks.